package com.demo.service;

import com.demo.pojo.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 服务降级
 * DeptClientService 中服务失败后回调的方法
 * @author chenyuan
 * @date 2020/10/11 10:58
 */
@Component
public class DeptClientServiceFallback implements FallbackFactory {
    /**
     * 这里就是针对需要进行失败回调的服务接口进行操作
     * 所以返回值修改为服务接口
     * @param throwable
     * @return
     */
    @Override
    public DeptClientService create(Throwable throwable) {
        // 返回服务接口，并实现接口方法
        return new DeptClientService() {
            @Override
            public boolean addDept(Dept dept) {
                return false;
            }

            @Override
            public Dept queryDeptById(Long id) {
                return new Dept(id, "服务已降级，这个服务暂时被关闭");
            }

            @Override
            public List<Dept> queryDepts() {
                return null;
            }
        };
    }
}
